package com.cneport.das.common.validate;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @Desc 属性格式校验注解
 * @Ver 1.0
 * @Author GavinZhang
 * @Company xxxxx 公司
 * @Date 2021-12-28 10:20:02
 */
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface FieldCheck {
    /**
     * 名称
     *
     * @return
     */
    String name();

    /**
     * 类型
     *
     * @return
     */
    FvEnum type();

    /**
     * 能否够为空
     *
     * @return
     */
    boolean isNullable() default true;

    /**
     * 格式，能够是正则，默觉得空字符串
     *
     * @return
     */
    String regex() default "";

    /**
     * 格式，能够是正则，默觉得空字符串
     *
     * @return
     */
    String regexDesc() default "";

    /**
     * 最小值(Integer)
     *
     * @return
     */
    int min() default -1;

    /**
     * 最大值(Integer)
     *
     * @return
     */
    int max() default -1;

    /**
     * 最小值（Double）
     *
     * @return
     */
    double minVal() default -1d;

    /**
     * 最大值(Double)
     *
     * @return
     */
    double maxVal() default -1d;


    /**
     * 长度(String)
     *
     * @return
     */
    int length() default -1;

    /**
     * 最大长度(String)
     *
     * @return
     */
    int maxLength() default -1;

    /**
     * 最小长度(String)
     *
     * @return
     */
    int minLength() default -1;

    /**
     * 在之内，以逗号分割
     */
    String in() default "";
}
